Page({
  data: {
    userInfo: null,
  },
  onLoad() {
    // 获取本地存储中的数据，设置到data中
    const userInfo = wx.getStorageSync('userInfo')
    this.setData({ userInfo })
  },
  // 选择头像
  onChooseAvatar(ev) {
    // console.log(ev)
    // 1 获得 临时选择头像 - 临时 内存地址
    const { avatarUrl } = ev.detail
    // 2 把头像 上传到 后台服务器 - 返回该头像在线地址  url
    // 不能利用请求拦截器的功能
    wx.uploadFile({
      url: wx.http.baseURL + '/upload', // 上传的地址
      filePath: avatarUrl, // 上传的文件的临时地址
      name: 'file', // 文件的key file 接口文档来写
      header: {
        // 自己携带token
        Authorization: `Bearer ${getApp().token}`,
      },
      formData: {
        type: 'avatar', // 接口文档要求填写
      },
      success: async (res) => {
        // 成功上传后的图片地址
        // console.log(res) // 后端响应的结果 res.data 是json字符串，无法直接使用，需要我们自己解析
        const resData = JSON.parse(res.data)
        const avatar = resData.data.url // 获取到了在线头像地址

        // 发送请求 完成头像的修改
        const avatarRes = await wx.http({
          url: '/userInfo',
          method: 'put',
          data: { avatar },
        })

        console.log(avatarRes)

        // 给出成功的提示
        wx.utils.toast('修改头像成功')

        // 实时更新 data中的用户头像 页面实时变化
        this.setData({
          // 简写修改对象中某个属性写法
          'userInfo.avatar': avatar,
        })
      },
      // 
    })
    // 把头像的在线地址 调用 修改个人信息接口，把地址传递给接口 完成头像的修改
  },
  // 修改昵称
  async onNickNameChange(ev) {
    console.log(ev);
    const nickName = ev.detail
    if (!nickName) {
      return wx.utils.toast('昵称不能为空')
    }
    // 调用接口 完成昵称的修改
    const res = await wx.http({
      url: '/userInfo',
      method: 'put',
      data: { nickName }
    })
    console.log(res);
    wx.utils.toast('修改昵称成功')
    this.setData({
      'userInfo.nickName': nickName
    })
  }
})